package com.algorithm.List;

public interface List<E> {

    /**
     * 获得List 的大小
     * @return 返回List的大小
     */
    int size();

    /**
     * List 是否为空
     */
    boolean isEmpty();

    /**
     * 清空
     */
    void clear();

    /**
     * 是否包含某个元素
     */
    boolean contains(E element);

    /**
     * 获得某个索引的元素
     */
    E get(int index);

    /**
     * 设置index位置的元素，当有旧的元素时，返回旧的元素
     */
    E set(int index,E element);

    /**
     * 向List中添加一个元素
     */
    void add(E element);

    void add(int index, E element);

    /**
     * 从List中移除一个元素
     */
    E remove(int index);

    /**
     * 获得某个元素的index
     */
    int indexOf(E element);
}
